/* 
*
* This file is part of aion unique <aion-lightning.com>.
*
*  aion unique is free software: you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation, either version 3 of the License, or
*  (at your option) any later version.
*
*  aion-emu is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with aion lightning.  If not, see <http://www.gnu.org/licenses/>.
*/

package admincommands;

import com.aionemu.gameserver.configs.administration.AdminConfig;
import com.aionemu.gameserver.model.ChatType;
import com.aionemu.gameserver.model.gameobjects.Npc;
import com.aionemu.gameserver.model.gameobjects.VisibleObject;
import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.network.aion.serverpackets.SM_MESSAGE;
import com.aionemu.gameserver.utils.PacketSendUtility;
import com.aionemu.gameserver.utils.chathandlers.AdminCommand;

/**
* @author Divinity
* 
*/

public class Say extends AdminCommand
{
	public Say()
	{
		super("say");
	}
   
   @Override
   public void executeCommand(Player admin, String[] params)
   {
		String syntaxCommand = "syntax: //say <text>";
		
		if(admin.getAccessLevel() < AdminConfig.COMMAND_SAY)
		{
			 PacketSendUtility.sendMessage(admin, "You don't have enough rights to execute this command!");
			 return;
		}

		if (params.length < 1)
		{
			PacketSendUtility.sendMessage(admin, syntaxCommand);
			return;
		}
		
		VisibleObject target = admin.getTarget();
		
		if (target == null)
		{
			PacketSendUtility.sendMessage(admin, "You must select a target!");
			return;
		}
		
		StringBuilder sbMessage = new StringBuilder();
			
		for (String p : params)
			sbMessage.append(p + " ");
		
		String sMessage = sbMessage.toString().trim();
		
		if (target instanceof Player)
		{
			PacketSendUtility.broadcastPacket(((Player) target), new SM_MESSAGE(((Player) target), sMessage, ChatType.NORMAL), true);
		}
		else if (target instanceof Npc)
		{
			// admin is not right, but works
			PacketSendUtility.broadcastPacket(admin, new SM_MESSAGE(((Npc) target).getObjectId(), ((Npc) target).getName(), sMessage, ChatType.NORMAL), true);
		}
	}
}
